﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
using namespace std;

class Father {
public:
	static int a;
public:
	static void func() {
		cout << "Father::func()" << endl;
	}
	static void func(int a) {
		cout << "Father::func(int a)" << endl;
	}
};
int Father::a = 10; 

class Son : public Father {
public:
	static int a;
public:
	void static func() {
		cout << "Son::func()" << endl;
	}
};
int Son::a = 20; 

// 同样，子类中的静态成员变量和父类同名时，父类的该变量会被隐藏 
// 同样，子类中有和父类同名的静态成成员函数，则父类该名字的函数都会被隐藏，主要函数名相同，即使返回值类型不同，也会被隐藏  
// 注意：不是所有的函数都能从父类继承的，构造函数、析构函数、运算符重载的operator=也不能被继承，因为operator=完成构造行为。

void test01() {
	cout << Father::a << endl; // 10 
	cout << Son::a << endl; // 20 
	Son::func();
	// Son::func(5); // 被隐藏  
}

int main()
{

	test01(); 

	system("pause");
	return EXIT_SUCCESS;
}